﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AccesoDatos;

namespace RMA.Pantallas
{
    public partial class frmPermisosUsuarios : Form
    {
        private int _app;
        private string _usrId;
        private string _passwd;

        public frmPermisosUsuarios()
        {
            InitializeComponent();
        }
        public frmPermisosUsuarios(int App, string usr, string Passwd)
        {
            _app = App;
            _usrId = usr;
            _passwd = Passwd;
            InitializeComponent();
        }

        private void frmPermisosUsuarios_Load(object sender, EventArgs e)
        {
            CargaPermisosAsignados();
            CargaModulos(_app);
        }
        public void CargaPermisosAsignados()
        {
            clsUsuarios objUser = new clsUsuarios();
            Manejador_Usuarios objU = new Manejador_Usuarios();
            DataTable dtPermisos = new DataTable();

            dtPermisos = objU.ObtienePermisosUsuarios(_usrId, _passwd, _app);

            dgvPermisos.AutoGenerateColumns = false;
            dgvPermisos.DataSource = dtPermisos;

            foreach (DataGridViewColumn ca in dgvPermisos.Columns)
            {
                ca.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            }

        }
        public void CargaModulos(int AppId)
        {
            DataTable dtModulos = new DataTable();
            Manejador_Usuarios objU = new Manejador_Usuarios();

            dtModulos = objU.ObtieneModulosAplicacion(AppId, _usrId, _passwd);

            cbModulos.DataSource = dtModulos;
            cbModulos.DisplayMember = "descripcion";
            cbModulos.ValueMember = "mod_id";


        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnAgregar_Click(object sender, EventArgs e)
        {
            if (btnAgregar.Text.ToLower() == "asignar")
            {
                bool Asigna = false;
                Manejador_Usuarios objU = new Manejador_Usuarios();

                try
                {
                    Asigna = objU.GuardaPermisos(_usrId, _app, int.Parse(cbModulos.SelectedValue.ToString()));

                    if (Asigna)
                    {
                        MessageBox.Show("Cambios Aplicados", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        CargaPermisosAsignados();
                        CargaModulos(_app);
                    }
                    else
                    {
                        MessageBox.Show("Error al Guardar Cambios", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                catch (Exception ex)
                {

                }
            }
            else
            {
                if (btnAgregar.Text.ToLower() == "desasignar")
                {
                    bool Desasignar = false;
                    Manejador_Usuarios objP = new Manejador_Usuarios();

                    try
                    {
                        foreach (DataGridViewRow r in dgvPermisos.SelectedRows)
                        {
                            int Modulo = int.Parse(r.Cells[1].Value.ToString());
                            Desasignar = objP.RetiraPermisos(_usrId,_app, Modulo);    
                        }
                        MessageBox.Show("Cambios Aplicados", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        CargaPermisosAsignados();
                        CargaModulos(_app);
                        btnAgregar.Text = "Asignar";
                        
                        
                    }
                    catch (Exception ex1)
                    {
                        MessageBox.Show(ex1.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            
        }

        private void dgvPermisos_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            btnAgregar.Text = "Desasignar";
        }

        private void btnCrear_Click(object sender, EventArgs e)
        {
            Manejador_Usuarios objU = new Manejador_Usuarios();
            bool GuardaModulo = false;

            if (btnCrear.Text.ToLower() == "guardar")
            {
                try
                {
                    GuardaModulo = objU.GuardaModulos("7", txtModulo.Text, "0");
                    if (GuardaModulo)
                    {
                        MessageBox.Show("Modulo Agregado Correctamente", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        txtModulo.Visible = false;
                        btnCrear.Text = "Crear Modulo";
                        frmPermisosUsuarios_Load(sender, e);
                    }
                    else
                    {
                        MessageBox.Show("Error al Guardar el Modulo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

            }
            else
            {
                if (btnCrear.Text.ToLower() == "crear modulo")
                {
                    txtModulo.Visible = true;
                    txtModulo.Focus();
                    btnCrear.Text = "Guardar";
                }
            }
            
        }
    }
}
